package com.zf.rabbitmq.producer.config;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;

/**
 * 配置 RabbitTemplate 发送消息把对象序列化为 JSON，如果是字符串则回添加 ""，
 * 默认使用的是JDK的序列化方式，反序列化时严格要求全类名一致。JSON则没有这种限制。
 *
 * 全局配置
 */
// @Component
public class RabbitConfig implements InitializingBean {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Override
    public void afterPropertiesSet() throws Exception {
        // 设置把 RabbitTemplate 发送的消息对象序列化成json后在发送
        Jackson2JsonMessageConverter messageConverter = new Jackson2JsonMessageConverter();
        rabbitTemplate.setMessageConverter(messageConverter);
    }
}
